package cn.tedu.collection;

import javax.crypto.spec.PSource;
import java.util.LinkedList;

/*本类用与LinkedList的相关测试*/
public class TestLinkedList {
    public static void main(String[] args) {
        //创建集合对象
        LinkedList<String> list = new LinkedList<>();
        //添加数据
        list.add("孙悟空");
        list.add("猪八戒");
        list.add("唐三藏");
        list.add("沙师弟");
        list.add("白龙马");
        System.out.println(list);
        //自行测试
        //测试LinkedList独有的方法
        list.addFirst("黄毛怪");//添加首元素
        list.addLast("鱼头酱");//添加尾元素
        System.out.println(list);

        System.out.println(list.getFirst());//获取首元素
        System.out.println(list.getLast());//获取尾元素

        list.removeFirst();//删除首元素
        System.out.println(list);
        list.removeLast();//删除尾元素
        System.out.println(list);

        //其他测试
        LinkedList<String> list2 = new LinkedList<>();
        list2.add("水浒传");
        list2.add("三国演义");
        list2.add("西游记");
        list2.add("石头记");
        System.out.println(list2);
        System.out.println(list2.element());//水浒传,查看首元素
        /*查询系列*/
        System.out.println(list2.peek());//水浒传,查看首元素
        System.out.println(list2.peekFirst());//水浒传,查看首元素
        System.out.println(list2.getLast());//查看尾元素

        /*别名:新增系列*/
        System.out.println(list2.offer("斗罗大陆"));//添加尾元素
        System.out.println(list2.offerFirst("斗破苍穹"));//添加首元素
        System.out.println(list2.offerLast("大主宰"));//添加尾元素
        System.out.println(list2);

        /*别名:移除系列*/
        System.out.println(list2.poll());//删除首元素
        System.out.println(list2.pollFirst());//删除首元素
        System.out.println(list2.pollLast());//删除尾元素
        System.out.println(list2);
    }
}
